WIP#4669
Draft
snazy wants to merge 22 commits into
Draft
Conversation
87bdba4 to
f69ee9d
Compare
This allows creating a `.env` file and for example enable the Gradle configuration cache via ``` GRADLE_OPTS='-Dorg.gradle.configuration-cache=true' ```
This new plugin for test purposes mainly buys us separation and faster feedback: - Test projects no longer need to build or embed a full Quarkus test app just to run against Polaris. - Tests can depend on a ready `quarkus-run.jar` via `polarisServer(...)`, so the server lifecycle is externalized from the test JVM. - Less Quarkus application builds across all checks, improving overall test runtime. - Quarkus dependencies stop leaking into test classpaths, which reduces dependency conflicts with Spark, Iceberg, Hadoop, etc. - The plugin makes `enforcedPlatform(libs.quarkus.bom)` safer because Quarkus is mostly constrained to the app/server side instead of the tests. - Each test task can get its own isolated Polaris server instance and config. - Projects can use normal `JvmTestSuite`s, which improves Gradle/IntelliJ behavior and keeps test classpaths scoped. - Custom server startup hooks still allow task-specific setup, like OPA/Testcontainers or RustFS, without baking those concerns into the plugin.
Adds a `PolarisServerManager` implementation for the polaris-server-test-runner plugin.
9cd265a to
ec96296
Compare
This change moves a bunch of Quarkus test profiles into the shared `Profiles` class. With that, exact duplicate profiles have been merged into one. The Iceberg catalog profiles have been merged. Each distinct Quarkus test profile requires the testing infrastructure to perform an expensive, time-consuming augmentation pass, hence this effort to unify test profiles.
Removed the four PreBootstrapped* admin profiles and the pre-bootstrap config flag from AdminProfiles. * Switched purge tests to the regular backend profiles. * Kept purge setup inside PurgeCommandTestBase with an unconditional test startup observer, using purge-specific realms: `purge-test-realm1`, `purge-test-realm2`, `purge-test-missing-realm`.
This change moves a few test cases to `PurgeCommandTest` and the new `BootstrapCommandTest`. Each `@QuarkusMainTest`/`@Launch` test case starts a new Quarkus command tool with fresh test resources. This means that each of these test cases also spawns new Postgres/Cockroach/Mongo container instances, which is time consuming. Runtime of `:polaris-admin:test` on my machine dropped from ~7 minutes to ~4 minutes.
f79a75d to
0d0ee7a
Compare
Save one profile (and its Quarkus augmentation), move more test profiles to `Profiles`.
Use `forkEvery = 1` only for `:polaris-runtime-service:test`. Use enlarged heap only for `:polaris-runtime-service:test` and `:polaris-admin:test`. `polaris-runtime-service`'s `intTest` and `cloudTest` and `:polaris-admin:test` will use `forkEvery=0`
* Replaced with simple `noSourceCheckProjects` in `Utilities.kt` * Evaluate in polaris-spotless and polaris-java convention plugins
Makes a couple of eager resolutions across the build scripts lazily evaluated. This should save a bunch of potentially unnecessary resolutions, depending on the Gradle invocation.
This change mostly focuses on isolating projects even further. Also a few more direct usages of `System.getenv` are moved to the Gradle provider.
This saves the creation of new containers for each integration-test.
0d0ee7a to
67de53e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pile of build and CI improvement changes - not to be merged as is